package top.chmin.project.cloud.sys.column.info;
import java.util.List;

import top.chmin.project.cloud.common.BindColumn;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.PostMapping;
import lombok.experimental.Accessors;
import lombok.Setter;
import lombok.Getter;



/**
 * chmin
 * 2024-01-25 14:22:05
 * cloud-code
 */
public interface ColumnInfoSelectColumnCodeOptionRest {

    @PostMapping("/cloud-code/columnInfo/auto/selectColumnCodeOption")
    List<R> selectColumnCodeOption(@RequestBody P p);

    @Getter
    @Setter
    @Accessors(chain = true)
    class P {
        /*###########auto#start###########*/
        // 是否是大字段
        private String bigColumn;
        // column编号
        private String columnCode;
        // column注释
        private String columnComment;
        // 字段长度
        private Integer columnLength;
        // column名称
        private String columnName;
        // 是否可Null
        private String columnNullable;
        // 数字位数
        private Integer columnPrecision;
        // 小数精度
        private Integer columnScale;
        // column类型
        private String columnType;
        // 属性名
        private String fieldName;
        // 属性完整类型
        private String fullType;
        // 方法名
        private String methodName;
        // 属性简单类型
        private String simpleType;
        // table编号
        private String tableCode;
        /*###########auto##end############*/
        /* append $modelFieldAppender$ */
    }

    @Getter
    @Setter
    @Accessors(chain = true)
    class R {
        @BindColumn(ColumnInfoColumn.columnCode)
        private String value;
        @BindColumn(ColumnInfoColumn.columnName)
        private String label;
    }

}
